<?php
class objeto{
	var $campos=array();
	
	public function get($nombre){
		
		if(method_exists($this, "beforeGet")){
			$bg=$this->beforeGet($nombre);
			if($bg->consume){
				return utf8_encode($bg->result);
			}
		}
		if(!array_key_exists($nombre, $this->campos)){
			$this->reload($nombre);
		}
		return utf8_encode($this->campos[$nombre]);
	}
	protected function reload($nombre){
		global $core;
	    $db=&$core->getDB();
	    $con=&$db->getConexion();
		$q="select `".mysql_real_escape_string($nombre)."` as 'valor' from `".mysql_real_escape_string($this->_tabla)."` where `id`='".mysql_real_escape_string($this->id)."' limit 1";
		
		
		$r=mysql_query($q);
		$i=mysql_fetch_array($r,MYSQL_ASSOC);
		$this->campos[$nombre]=$i["valor"];
	}
	public function set($nombre,$valor){
		global $core;
	    $db=&$core->getDB();
	    $con=&$db->getConexion();
		$q="update `".mysql_real_escape_string($this->_tabla)."` set `".mysql_real_escape_string($nombre)."`='".mysql_real_escape_string($valor)."'  where `id`='".mysql_real_escape_string($this->id)."' limit 1";
		mysql_query($q);
		$ok=mysql_affected_rows();
		if($ok&&method_exists($this, "setCallback")){
			$this->setCallback($nombre,$valor);
		}
		return $ok;
	}
	public function borrar(){
	    global $core;
	    $db=&$core->getDB();
	    $con=&$db->getConexion();
		if(method_exists($this, "beforeDelete")){
			$this->beforeDelete();
		}
		$q="delete from `".mysql_real_escape_string($this->_tabla)."` where `id`='".mysql_real_escape_string($this->id)."' limit 1";
		mysql_query($q);
		return mysql_affected_rows();
	}
}
